using System;
using System.Data;
using System.Configuration;
using System.Web.UI;
// ReSharper disable RedundantUsingDirective
// ReSharper restore RedundantUsingDirective
using Anthem;
using BusinessRules;
using Common;
using DataAccess;

public partial class RubrosModificaciones : PageBase
{
    #region IdentificadorPlnId

    public string IdentificadorPlnId
    {
        get { return (ViewState["IdentificadorPlnId"] == null ? string.Empty : ViewState["IdentificadorPlnId"].ToString()); }
        set { ViewState["IdentificadorPlnId"] = value; }
    }

    #endregion

    #region IdentificadorPlmId

    public string IdentificadorPlmId
    {
        get { return (ViewState["IdentificadorPlmId"] == null ? string.Empty : ViewState["IdentificadorPlmId"].ToString()); }
        set { ViewState["IdentificadorPlmId"] = value; }
    }

    #endregion

    #region crearContextItems

    private void crearContextItems()
    {
        try
        {
            Context.Items["IdentificadorPlnId"] = IdentificadorPlnId;
        }
        catch (Exception ex)
        {
            lblMensaje.Text = ex.ToString();
        }
    }

    #endregion

    #region TraerContextItems

    private void TraerContextItems()
    {
        if (Context.Items["IdentificadorPlnId"] != null)
            IdentificadorPlnId = Context.Items["IdentificadorPlnId"].ToString();
        if (Context.Items["IdentificadorPlmId"] != null)
            IdentificadorPlmId = Context.Items["IdentificadorPlmId"].ToString();
        
    }

    #endregion

    #region Page_Load

    protected void Page_Load(object sender, EventArgs e)
    {
        WccAcciones1.AddEnabledDuringCallBack = false;
        WccAcciones1.AddTextDuringCallBack = "Guardando... Por favor esperar!!!";
        WccAcciones1.UpdateEnabledDuringCallBack = false;
        WccAcciones1.UpdateTextDuringCallBack = "Guardando... Por favor espere!!!";

        if (Manager.IsCallBack)
        {
            Manager.RegisterClientScriptBlock(typeof(Page), "reloj", "<script>muestraReloj2();</script>");
        }
        WccAcciones1.Permisos = Permisos;
        if (!IsPostBack)
        {
            TraerContextItems();
            cargarTiposModificaciones();
            txtUsuario.Text = Usuario.Nombre;
            if (IdentificadorPlmId != "")
            {
                cargarCampos();
                WccAcciones1.Accion = Utilidad.Acciones.Actualizar;
                WccAcciones1.AddVisible = false;
                WccAcciones1.UpdateVisible = true;
                WccAcciones1.DeleteVisible = true;

            }
            else
            {
                WccAcciones1.Accion = Utilidad.Acciones.Adicionar;
            }
        }

    }

    #endregion

    #region cargarCampos

    private void cargarCampos()
    {
        BusinessRules.SigPlanAccionModificado objBR = new BusinessRules.SigPlanAccionModificado(ConfigurationManager.AppSettings["Conn"]);
        SigPlanAccionModificacionData objSigPlanAccionModificacionData = objBR.ConsultarSigPlanAccionModificadoPlmId(Convert.ToDecimal(IdentificadorPlmId));
        try
        {
            if (objSigPlanAccionModificacionData != null)
            {
                DataRow objRow = objSigPlanAccionModificacionData.Rows[0];
                ddlSigTipoModificacion.SelectedValue = objRow[SigPlanAccionModificacionData.STM_ID_FIELD].ToString();
                txtValor.Text = objRow[SigPlanAccionModificacionData.PLM_VALOR_FIELD].ToString();
                txtJustificacion.Text = objRow[SigPlanAccionModificacionData.PLM_JUSTIFICACION_FIELD].ToString();
                txtNorma.Text = objRow[SigPlanAccionModificacionData.PLM_NORMA_FIELD].ToString();
                txtObeservaciones.Text = objRow[SigPlanAccionModificacionData.PLM_OBSERVACION_FIELD].ToString();
                clFechaFecha.SelectedDate = Convert.ToDateTime(objRow[SigPlanAccionModificacionData.PLM_FECHA_FIELD].ToString());
                txtUsuario.Text = objRow[SigPlanAccionModificacionData.PLM_USUARIO_FIELD].ToString();
            }
        }
        catch (Exception ex)
        {

            lblMensaje.CssClass = "error";
            lblMensaje.Visible = true;
            lblMensaje.Text = Utilidad.TraerMensaje("gmsgErrorGeneral");
        }
    }

    #endregion

    #region cargarTiposModificaciones

    private void cargarTiposModificaciones()
    {

        SigTipoModificacion objSigTipoModificacion = new SigTipoModificacion(ConfigurationManager.AppSettings["Conn"]);
        SigTipoModificacionData objSigPndData = objSigTipoModificacion.BuscarSigTipoModificacion();
        ddlSigTipoModificacion.DataSource = objSigPndData;
        ddlSigTipoModificacion.DataValueField = SigTipoModificacionData.STM_ID_FIELD;
        ddlSigTipoModificacion.DataTextField = SigTipoModificacionData.STM_NOMBRE_FIELD;
        ddlSigTipoModificacion.DataBind();
    }

    #endregion

    #region lnkRubro_Click

    protected void lnkRubro_Click(object sender, EventArgs e)
    {
        crearContextItems();
        Server.Transfer("Rubros.aspx?SSM_ID=18", true);
    }

    #endregion

    #region btnRegresar_Click

    protected void btnRegresar_Click(object sender, ImageClickEventArgs e)
    {
        crearContextItems();
        Server.Transfer("RubrosModificacionesListado.aspx?SSM_ID=18", true);
    }

    #endregion

    #region WccAcciones1_Add_OnClick

    protected void WccAcciones1_Add_OnClick(object sender, ImageClickEventArgs e)
    {
        Adcionar();
    }

    #endregion

    #region Adcionar

    private void Adcionar()
    {
        SigPlanAccionModificacionData objDS = new SigPlanAccionModificacionData();
        try
        {
            DataRow objRow = objDS.NewRow();
            //objRow[SigPlanAccionData.PLN_ID_FIELD] = IdentificadorPlnId;
            objRow[SigPlanAccionModificacionData.STM_ID_FIELD] = ddlSigTipoModificacion.SelectedValue;
            objRow[SigPlanAccionModificacionData.PLN_ID_FIELD] = IdentificadorPlnId;            
            objRow[SigPlanAccionModificacionData.PLM_VALOR_FIELD] = txtValor.Text;
            objRow[SigPlanAccionModificacionData.PLM_JUSTIFICACION_FIELD] = txtJustificacion.Text;
            objRow[SigPlanAccionModificacionData.PLM_OBSERVACION_FIELD] = txtObeservaciones.Text;
            objRow[SigPlanAccionModificacionData.PLM_NORMA_FIELD] = txtNorma.Text;
            objRow[SigPlanAccionModificacionData.PLM_FECHA_FIELD] = clFechaFecha.SelectedValue;
            objRow[SigPlanAccionModificacionData.PLM_USUARIO_FIELD] = txtUsuario.Text;
            objDS.Add(objRow);
            SigPlanAccionModificado objBR = new SigPlanAccionModificado(ConfigurationManager.AppSettings["Conn"]);
            IdentificadorPlmId = objBR.AdicionarRubrosModificadosContransacciones(objDS,IdentificadorPlnId).ToString();
            lblMensaje.Visible = true;
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgExitoGuardar"), lblMensaje);
            WccAcciones1.Accion = Utilidad.Acciones.Actualizar;
            WccAcciones1.AddVisible = false;
            WccAcciones1.UpdateVisible = true;
            WccAcciones1.DeleteVisible = true;
        }
        catch (Exception objEx)
        {
            //ExceptionManager.Publish(objEx);
            lblMensaje.Visible = true;
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, Utilidad.TraerMensaje("gmsgErrorGeneral"), lblMensaje);
        }

        
    }

    #endregion

    #region WccAcciones1_Delete_OnClick

    protected void WccAcciones1_Delete_OnClick(object sender, ImageClickEventArgs e)
    {
        eliminar();
    }

    #endregion

    #region eliminar

    private void eliminar()
    {
        try
        {
            SigPlanAccionModificado objSigPlanAccionModificado =
                new SigPlanAccionModificado(ConfigurationManager.AppSettings["Conn"]);
            objSigPlanAccionModificado.EliminarRubroModificaciones(IdentificadorPlmId);
            lblMensaje.Text = "Registro Eliminados";
            limpiarCampos();
            WccAcciones1.Accion = Utilidad.Acciones.Adicionar;
            WccAcciones1.AddVisible = true;
            WccAcciones1.UpdateVisible = false;
            WccAcciones1.DeleteVisible = false;
            lblMensaje.Visible = true;
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgEliminarRegistrosExitoso"), lblMensaje);
        }
        catch (Exception ex)
        {
            if (ex.Message != null) lblMensaje.Text = ex.Message;
        }

    }

    #endregion

    #region limpiarCampos

    private  void limpiarCampos()
    {
        txtValor.Text = "";
        txtJustificacion.Text = "";
        txtObeservaciones.Text = "";
        txtNorma.Text = "";
        txtObeservaciones.Text = "";
        txtValor.AutoUpdateAfterCallBack = true;
        txtJustificacion.AutoUpdateAfterCallBack = true;
        txtNorma.AutoUpdateAfterCallBack = true;
        txtObeservaciones.AutoUpdateAfterCallBack = true;
        
    }

    #endregion

    #region WccAcciones1_Update_OnClick

    protected void WccAcciones1_Update_OnClick(object sender, ImageClickEventArgs e)
    {
        Actualizar();
    }

    #endregion

    #region Actualizar

    private void Actualizar()
    {
        SigPlanAccionModificacionData objDS = new SigPlanAccionModificacionData();
        try
        {
            DataRow objRow = objDS.NewRow();
            objRow[SigPlanAccionModificacionData.PLM_ID_FIELD] = IdentificadorPlmId;
            objRow[SigPlanAccionModificacionData.STM_ID_FIELD] = ddlSigTipoModificacion.SelectedValue;
            objRow[SigPlanAccionModificacionData.PLN_ID_FIELD] = IdentificadorPlnId;
            objRow[SigPlanAccionModificacionData.PLM_VALOR_FIELD] = txtValor.Text;
            objRow[SigPlanAccionModificacionData.PLM_JUSTIFICACION_FIELD] = txtJustificacion.Text;
            objRow[SigPlanAccionModificacionData.PLM_OBSERVACION_FIELD] = txtObeservaciones.Text;
            objRow[SigPlanAccionModificacionData.PLM_NORMA_FIELD] = txtNorma.Text;
            objRow[SigPlanAccionModificacionData.PLM_FECHA_FIELD] = clFechaFecha.SelectedValue;
            objRow[SigPlanAccionModificacionData.PLM_USUARIO_FIELD] = txtUsuario.Text;
            objDS.Add(objRow);
            SigPlanAccionModificado objBR = new SigPlanAccionModificado(ConfigurationManager.AppSettings["Conn"]);
            objBR.ActualizarRubrosModificadosContransacciones(objDS,IdentificadorPlnId);
            lblMensaje.Visible = true;
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Mensaje, Utilidad.TraerMensaje("gmsgExitoGuardar"), lblMensaje);
            WccAcciones1.Accion = Utilidad.Acciones.Actualizar;
            WccAcciones1.AddVisible = false;
            WccAcciones1.UpdateVisible = true;
            WccAcciones1.DeleteVisible = true;
        }
        catch (Exception objEx)
        {
            //ExceptionManager.Publish(objEx);
            lblMensaje.Visible = true;
            Utilidad.mostrarMensaje(Utilidad.TiposMensajes.Error, Utilidad.TraerMensaje("gmsgErrorGeneral"), lblMensaje);
        }
    }

    #endregion
}
